<?
    class CM_Form_Base extends Zend_Form
    {
        /**
         * value для элемента формы класса CM_Form_Element_Apply.
         */
        const APPLY_FORM_FLAG = 1;


        /**
         * Переопределяем базовае декораторы для элементов формы.
         *
         * @param null $options
         */
        public function __construct($options = null)
        {
            parent::__construct($options);

            $this->setElementDecorators(array(
                "ViewHelper",
                "Errors",
                array("HtmlTag", array('tag' => "div", 'class' => "form_cell")),
                array("Label", array('tag' => "div", 'class' => "form_cell")),
                array(array('row' => "HtmlTag"), array('tag' => "div", 'class' => "form_row"))
            ),
            array(
                "id",
                "apply"
            ), false);
        }


        /**
         * Расширение базового метода валидации элементов формы.
         * 1) Если базовый метод возвращает false, получаем список ошибок валидации.
         * 2) Перебираем список ошибок и передаём каждую в массив ошибок WebUserPBX_Error::errors_list.
         * 3) Возвращаем true/false в зависимости от результата работы базового класса.
         *
         * @param array $data
         * @return bool
         */
        public function isValid($data)
        {
            if (!parent::isValid($data))
            {
                foreach ($this->getMessages() as $error_block)
                {
                    foreach ($error_block as $error_text)
                        WebUserPBX_Error::error($error_text);
                };
                return false;
            };
            return true;
        }
    };
?>
